package com.expressage.service;

import com.expressage.po.Staff;
import com.expressage.vo.StaffVO;

import java.util.List;

/**
 * 员工业务逻辑接口
 */
public interface StaffService {

    /**
     * 查询所有员工信息
     * @return 员工对象 集合
     */
    public List<StaffVO> findAll();

    /**
     * @return 员工对象集合
     */
    public List<StaffVO> find(String staffname);

    /**
     *  根据员工id查询员工信息
     * @return  员工对象
     */
    public StaffVO findByid(int id);

    /**
     * 根据站点id查询
     * @param siteid 站点id
     * @return 员工对象 集合
     */
    public List<StaffVO> findBySiteid(int siteid);

    /**
     * 根据角色查询
     * @param rid 角色id
     * @return  员工对象 集合
     */
    public List<StaffVO> findByRid(int rid);

    /**
     * 根据市区id查询
     * @param cityid 市区id
     * @return 员工对象 集合
     */
    public List<StaffVO> findByCityid(int cityid);

    /**
     * @param staff 员工
     * @return 员工对象
     */
    public Staff findByNamePass(Staff staff);

    /**
     * 根据区域id查询
     * @param areaid 区域id
     * @return  员工对象 集合
     */
    public List<StaffVO> findByAreaid(int areaid);

    /**
     * 根据街道id查询
     * @param streetid 街道id查询
     * @return  员工对象 集合
     */
    public List<StaffVO> findByStreetid(int streetid);

    /**
     * 根据薪资id查
     * @param salaryid 薪资id
     * @return  员工对象 集合
     */
    public List<StaffVO> findBySalaryid(int salaryid);
    /**
     * 根据id修改员工信息
     * @param  staff 员工对象
     * @return  受影响行数
     */
    public boolean update(Staff staff);

    /**
     * @param staff 插入一个员工
     * @return 受影响行数
     */
    public boolean add(Staff staff);

    /**
     * 根据员工id删除（支持批量删除）
     * @param array 员工id 数组
     * @return 受影响行数
     */
    public boolean delete (int[] array);
}
